package com.bjsxt.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bjsxt.domain.SysMenu;
import com.bjsxt.mapper.SysMenuMapper;
import com.bjsxt.service.SysMenuService;
import com.bjsxt.service.SysRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {

    /**
     * 菜单 mapper 接口
     */
    @Autowired
    private SysMenuMapper sysMenuMapper;

    /**
     * 角色 mapper 接口
     */
    @Autowired
    private SysRoleService sysRoleService;

    /**
     * 通过用户 id 查询对应的菜单数据
     * 1. 如果用户是超级管理员就有所有的菜单
     * 2. 不是就是查询角色, 通过角色查询对应的菜单
     *
     * @param userId 用户 id
     * @return 菜单集合
     */
    @Override
    public List<SysMenu> getMenusByUserId(Long userId) {
        // 如果用户角色是超级管理员 查询所有的菜单
        if (sysRoleService.isSuperAdmin(userId))
            return list();
        // 不是超级管理员 先查询角色 再查询对应的菜单
        return sysMenuMapper.selectMenusByUserId(userId);
    }
}
